﻿#pragma once

#include <boost/signal.hpp>
#include "../../domain/models/CardSet.h"
#include "../../domain/models/CardsCollection.h"
#include "../../domain/models/Player.h"

namespace Views {

	/** Interfejs wyboru pomieszczenia */
	class IBoardView
	{
	public:
		virtual ~IBoardView() {};

		boost::signal<void (BoardItems::Room*)> playerRoomChangeEvent; /**< Zdarzenie wybrania pokoju */

		/**
		* Otwiera okno wyboru pomieszczenia. Po wyborze wywołuje playerRoomChangeEvent.
		* @param player Gracz odpytywany o wybór
		* @param cards Wszystkie karty pomieszczeń
		*/
		virtual void askForPlayerNewPosition(Players::Player*, Cards::RoomsCards) = 0;
	};

}

